package com.xiahui.day11.Test1;


/**
 *  人类：实现模拟饮水机接水的效果
 *  static修饰属性，称之为静态属性，也叫静态变量，也叫类变量
 *  被static修饰的属性 不属于任何对象 属于当前类 可以被此类的所有对象共享 在内存中只存在一份
 *  创建对象也叫实例(真真实实存在的一个个例)化  对象级别 也称之为实例级别
 *  对象创建的过程：
 *  1.将当前对象所属类对应的class文件加载到方法区
 *      在加载类信息文件(class文件)之前 会先判断 此类是否已经被加载过
 *      如果加载过 则直接执行第2步
 *      如果没有加载过 则先加载
 *      类只加载一次
 *  加载类的同时会在方法区的静态区初始化静态相关的信息 此时 静态相关的信息将有初始值
 *  2.在堆中开辟空间创建对象  此时实例级别的属性将有默认值
 *  3.将堆中的地址赋值给栈中的引用 完成对象的创建
 *
 *
 *
 *
 */
public class Person {
    String name;
    //int capacity = 100;//没有使用静态属性之前，capacity属性不是共用的
    static int capacity = 100; // 使用静态属性之后capacity属性共用   单位L

    public void getWater(){
        if(capacity >0){
            capacity -= 2;
            System.out.println(name + "接水2L，还剩余" + capacity + "L");
        }else{
            System.out.println("没水了");
        }
    }

    public static void main(String[] args) {
        Person p1 = new Person();
        p1.name = "赵四";
        p1.getWater();

        Person p2 = new Person();
        p2.name = "大拿";
        p2.getWater();
        p2.getWater();

        Person p3 = new Person();
        p3.name = "小宝";
        p3.getWater();


    }

}

